var gulp = require('gulp');
var sass = require('gulp-sass');
var connect = require('gulp-connect');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var minifyCss = require('gulp-minify-css');

// 部署开发使用服务器，
gulp.task('server', function(){
	connect.server({
		root:'dist',
		livereload:true
	});
	console.log('服务器已启动，请访问http://localhost:8080');
})

// 把所有html放在dist文件夹
gulp.task('copy-html',function(){
	return gulp.src('app/*.html').pipe(gulp.dest('dist')).pipe(connect.reload());
})

// 所有布局使用图片放在dist/style/images中
gulp.task('images',function(){
	return gulp.src('app/images/**/*').pipe(gulp.dest('dist/style/images'));
})

// 所有网站图片放在dist/picture中
gulp.task('picture',function(){
	return gulp.src('app/picture/**/*').pipe(gulp.dest('dist/picture'));
})

// 合并压缩css
gulp.task('style-css',function(){
	return gulp.src('app/css/*.css')
		.pipe(concat('style.css'))
		.pipe(gulp.dest('dist/style/css'))
		.pipe(minifyCss())
		.pipe(rename('style.min.css'))
		.pipe(gulp.dest('dist/style/css'))
        .pipe(connect.reload())
})

// 合并并压缩 js 库，更名为 vendor.min.js ，放到 dist/js 中
gulp.task('script-lib',function(){
	return gulp.src([
		'app/js/lib/angular-ui-route.js',
		'app/js/lib/angular.js',
		'app/js/lib/jquery.js'
	])
	.pipe(concat('vendor.js'))
	.pipe(gulp.dest('dist/style/js'))
	.pipe(uglify())
	.pipe(rename('vendor.min.js'))
	.pipe(gulp.dest('dist/style/js'));
})

// 合并并压缩项目 js ，更名为 app.min.js ，放到 dist/js 中
gulp.task('script',function(){
	return gulp.src('app/js/*')
	.pipe(concat('app.js'))
	.pipe(gulp.dest('dist/style/js'))
	.pipe(uglify())
	.pipe(rename('app.min.js'))
	.pipe(gulp.dest('dist/style/js'))
    .pipe(connect.reload())
})

// sass编译
gulp.task('sass',function(){
	gulp.src('app/sass/**/*.scss')
		.pipe(sass())
		.pipe(rename('style.scss.css'))
		.pipe(gulp.dest('dist/style/css'))
		.pipe(connect.reload())
})

// 编译项目
gulp.task('build',['copy-html','images','picture','script'],function(){
	console.log('项目编译成功');
})

// 监视文件变化
gulp.task('watch',function(){
	gulp.watch('app/*.html',['copy-html']);
	gulp.watch('app/js/lib/**/*.js',['script-lib']);
	gulp.watch('app/js/*',['script']);
	gulp.watch('app/css/*.css',['style-css']);
	gulp.watch('app/sass/**/*.scss',['sass']);
	gulp.watch('app/images/**/*',['images']);
	gulp.watch('app/picture/**/*',['picture']);
})

// 启动gulp
gulp.task('default',['server','watch'])